7.3 Der Begriff der Integrität
Die Erweitere Form der CREATE TABLE
-Anweisung – CONSTRAINT
Wir wissen nun wie Tabellen mit Attributen (Spalten) in einer Datenbank erstellt werden und dass die
Spalten gewisse Datentypen und Eigenschaften (NOT NULL
, DEFAULT
) besitzen
können. Doch wie werden nun Beziehungen zwischen diesen Tabellen hergestellt?
Dazu soll an dieser Stelle zunächst der Begriff der Integrität näher beschrieben werden. Die Integrität sichert in einer Datenbank die Vollständigkeit und Unversehrtheit. Dafür kann man eine Reihe von Regeln in den Tabellen festlegen, die für die Spalten gewisse Beschränkungen definieren.
-
Regeln für die Wertebereichsintegrität (Domain-Integrität)
Sie umfassen die Korrektheit der Attribute innerhalb der Relation. Neben der Einschränkung des Wertebereichs durch Festlegung von Ober- und Untergrenzen für einen Datentyp gehört auch dieNOT NULL
-Einschränkung dazu. -
Regeln für die intra-relationale Integrität (Entity-Integrität)
Die Korrektheit der Beziehungen zwischen den Attributen in einer Relation und der Erhaltung der Eindeutigkeit des Schlüssels werden hier bestimmt. Im Wesentlichen geht es um die Eindeutigkeit der Schlüssel, Indizes und zum Beispiel fortlaufende Nummerierung innerhalb einer Tabelle. Ein Primärschlüssel muss immer eindeutig einen Datensatz kennzeichnen und darf deshalb nie leer sein und nie mehrfach vorkommen. -
Regeln für die referentielle Integrität
Für die Erhaltung der Korrektheit und Konsistenz (Widerspruchslosigkeit) der Beziehungen zwischen den Relationen ist diese von entscheidender Bedeutung. Die referentielle Integrität gilt vor allem der Überprüfung von Fremdschlüsseln. So sollten z.B. in einer Bibliothek keine Benutzer gelöscht werden können, die noch ein Buch ausgeliehen haben. Außerdem sollten nur Bücher an tatsächlich vorhandene Benutzer ausgeliehen werden können.
(Die Beziehungen zwischen den Tabellen in einer Datenbank sind hier gemeint.)
Die Integritäten werden in SQL mit dem Schlüsselwort CONSTRAINT
(engl. für Beschränkung) angegeben. Hinter dem Schlüsselwort CONSTRAINT
folgt
eine beliebige Bezeichnung für die Integritätsbedingung und anschließend die
Integritätsbedingung selbst.
Das NOT-NULL
-Constraint, welches immer als Spalten-Constraint geschrieben wird,
wurde bereits in dem vorangegangenen Abschnitt beschrieben. Es beschränkte die Spalte darauf,
dass sie den NULL
-Wert nicht aufnehmen darf.
In den nächsten Abschnitten werden eine Reihe von Constraints näher erläutert.
Dazu gehören der Primärschlüssel-Constraint, der Fremdschlüssel-Constraint, das
CHECK
-Constraint und das UNIQUE
-Constraint.